package learn1;

/*
    方法：将具有独立功能的代码块组织成为一个整体，使其具有特殊功能的代码集
    格式：
    public static void 方法名()
    {
        方法体
    }
    调用格式：方法名

    带参数方法定义：
    格式：
    1.单个参数  public static void 方法名(数据类型 变量名){}
    2.多个参数  public static void 方法名(数据类型 变量名1，数据类型 变量名2，.....){}
    调用：
    方法名(参数)

    带返回值方法定义
    格式：
    public static 数据类型 方法名（）{
    return 数据
    }

    方法注意事项：
    方法不能嵌套
    void可以省略返回值，也可以单独写return不加数据

    方法重载：同一个类中定义的多个方法之间的关系，满足下列条件的多个方法相互构成重载
    多个方法在同一个类中
    多个方法具有相同的方法名
    多个方法的参数不相同，类型不同或数量不同（与返回类型无关）

    方法参数传递（基本数据类型）
    对于基本数据类型的参数，形式参数的改变，不影响实际参数的值

    （引用数据类型）
    对于引用数据类型的参数，形式参数的改变，印象实际参数的值

*/

public class MethodDemo {
    public static void main(String[] args) {
        isEvenNumber();

        getMax();

        int number = 10;
        isEvenNumber2(number);
        isEvenNumber2(55);

        int a = 10, b = 22;
        getMax2(a, b);
        getMax2(10, 30);

        boolean flag = isEvenNumber3(55);
        System.out.println(flag);

        int m=getMax3(a,b);
        System.out.println(m);

        int sum1=sum(1,2);
        int sum2=sum(1,2,3);
        double sum3=sum(1.0,2.2);
        System.out.println(sum1);
        System.out.println(sum2);
        System.out.println(sum3);

        //基本数据类型，形式参数的改变，不影响实际参数的值
        int nn=100;
        System.out.println("调用change方法前"+nn);
        change(nn);
        System.out.println("调用change方法后"+nn);

        //引用数据类型
        int[] arr={10,20,30};
        System.out.println("调用change方法前"+arr[1]);
        change(arr);
        System.out.println("调用change方法后"+arr[1]);

    }

    //需求：定义一个方法，在方法中定义一个变量，判断该数据是否是偶数
    public static void isEvenNumber() {
        //定义变量
        int number = 10;
        //判断是否为偶数
        if (number % 2 == 0) {
            System.out.println(true);
        } else {
            System.out.println(false);
        }
    }

    //需求：设计一个方法用于打印两个数中的较大数
    public static void getMax() {
        int a = 10;
        int b = 20;
        System.out.println(a > b ? a : b);
    }

    //需求：接收一个参数，判断是否为偶数
    public static void isEvenNumber2(int number) {
        if (number % 2 == 0) {
            System.out.println(true);
        } else {
            System.out.println(false);
        }
    }

    //需求：设计一个方法，打印较大数，数据来自方法参数
    public static void getMax2(int a, int b) {
        if (a > b) {
            System.out.println(a);
        } else {
            System.out.println(b);
        }
    }

    //需求，判断是否为偶数，返回真假
    public static boolean isEvenNumber3(int number) {
        if (number % 2 == 0) {
            return true;
        } else {
            return false;
        }
    }

    //需求：获得较大值，返回
    public static int getMax3(int a, int b) {
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }

    //重载
    public static int sum(int a,int b){

        return a+b;
    }
    public static int sum(int a,int b,int c){

        return a+b+c;
    }
    public static double sum(double a,double b){

        return a+b;
    }

    //参数传递
    public static void change(int number)
    {

        number=5555;
    }
    public static void change(int[] arr)
    {

        arr[1]=5555;
    }

}
